#include "boundary.hh"

namespace Dune {
  namespace Boundary {
    Boundary::Boundary() {
    }
    Boundary::~Boundary() {
    }
    void Boundary::parser_flags(Dune::ParameterTree& ptree) {
    }
    template<typename INIT>
    void Boundary::bind_initial_condition(INIT& init) {
      this->init = init;
    }
    void Boundary::set_bouncond_paras(Dune::ParameterTree& ptree) {
      std::string flags_string = ptree.get<std::string>("boundary.flags");
    }
    void Boundary::set_bouncond_para(std::string key, double value) {
      para[key] = value;
    }

    // five types of boundary condition 
    void Boundary::fixed_boundary(double* location, double* holder) {
      init->initial_condition(location,holder);
    }
    void Boundary::driven_boundary(double t, double* location, double* holder) {
    }
    void Boundary::typical_boundary() {
    }
    void Boundary::composite_boundary() {
    }
    void Boundary::internal_boundary() {
    }

    // private functions
    void Boundary::const_boun() {
    }
    void Boundary::zero_boun() {
    }
  } // Boundary
} // Dune
